There are a wide variety of applications in which a user may wish to modify the properties of a prototype presented to it by a computer or other machine. For example:                graphic design software packages may allow a user to produce a drawing, a colour, or other image data, by modifying aspects of a prototype drawing, colour, etc;        music-creation software may allow a user to produce a melody, a chord, a sound, a sound loop, a song, a mix, or other audio data, by modifying aspects of a prototype melody, chord, song, etc;        in the field of robotics, the commands given to a robot may be generated by modifying one or more parameters of a prototype command-set that represents high-level sensory-motor commands;        a content-management system for digital content (notably multimedia content: films, video clips, images, songs, etc.) may allow a user to select items of content, notably for rendering, by expressing the selection criteria in terms of a change in properties of a prototype: that is, the new digital content may be selected by comparing its properties with those of another item of content (a prototype), such as the item of content currently being rendered (played back); and so on.        